//
//  StatusViewModel.swift
//  Weibo10
//
//  Created by mac on 16/8/15.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

class StatusViewModel: CustomStringConvertible {
    
    /**
    *  VM的属性
    */
    // 微博的模型
    var status: Status
    
    /// 缓存的行高
    lazy var rowHeight: CGFloat = {
        
        print("计算行高 \(self.status.text)")
        
        // 1. cell
        let cell = StatusCell(style: .Default, reuseIdentifier: StatusCellNormalId)
        
        // 2. 记录高度
        return cell.rowHeight(self)
    }()

    
    // 用户头像 URL
    var userProfileUrl: NSURL {
        
        return NSURL(string: status.user?.profile_image_url ?? "")!
    }
    
    // 用户默认头像
    var userDefaultIconView: UIImage {
        return UIImage(named: "avatar_default_big")!
    }
    
    // 用户会员图标
    var userMemberImage: UIImage? {
        
        if status.user?.mbrank > 0 && status.user?.mbrank < 7 {
            
            return UIImage(named: "common_icon_membership_level\(status.user!.mbrank)")
        }
        return nil
    }
    
    // 定义缩略图URL数组 － 存储型属性
    var thumbnailUrls: [NSURL]?
    
    
    // 用户认证图片
    var userVipImage: UIImage? {
        
        switch(status.user?.verified_type ?? -1) {
            
        case 0: return UIImage(named: "avatar_vip")
        case 2,3,5: return UIImage(named: "avatar_enterprise_vip")
            
        case 220: return UIImage(named: "avatar_grassroot")
        default: return nil
        }
    }
    
    // 构造函数
    init(status: Status) {
        // self一般可以省略，这里加是为了跟参数区分
        self.status = status
        
        
        // 根据模型，来省城缩略图的数组
        if status.pic_urls?.count > 0 {
            
            // 创建缩略图数组
            thumbnailUrls = [NSURL]()
            
            // 便利数组，转换成URL的对象
            for dict in status.pic_urls! {
            
            let url = NSURL(string: dict["thumbnail_pic"]!)
                
                // 添加到数组中
                thumbnailUrls?.append(url!)
            }
        }
    }
    
    /// 描述信息
    var description: String {
        return status.description + "配图数组 \(thumbnailUrls ?? [] as NSArray)"
    }

}